Microsoft Graph API
高専機構側(もしくは学校側)で制限がかけられておりAccess Tokenが得られない
Graph Explorerから一時Tokenは得られる
実行するたびにTokenを取る必要があるので定期実行や一般TAの実行が難しい
/icons/hr.icon
メモ
全てのチームやチャネル(プライベートチャネルも含む)はAPI経由なら存在自体は確認できる
チャネルにメッセージを送る方法
APIの権限はないっぽい
POST /teams/{team-id}/channels/{channel-id}/messages
チームに招待する方法
Graph APIの権限はないっぽい
Web版のTeamsから招待する際のRequestをConsoleから読んだら一応できた
ACCESS_TOKENとSKYPETOKENを取得する方法がわからないのでConsoleから取ってくる
全学生のメールアドレスを取得する方法でUser IDは取得する
code:javascript
const TEAM_ID = ;
const CHANNEL_ID = abc@thread.tacv2;
const ACCESS_TOKEN = jwt;
const SKYPETOKEN = jwt;
const inviteToTeams = async (userIds, isOwner) => {
const payload = {
/**
* role
* 0: メンバー
* 1: 所有者
*/
users: userIds.map(userId => ({ mri: 8:orgid:${userId}, role: Number(isOwner) })),
groupId: TEAM_ID
};
const res = await fetch(https://teams.microsoft.com/api/mt/apac/beta/teams/${CHANNEL_ID}/bulkUpdateRoledMembers?allowBotsInChannel=true, {
headers: {
"authorization": Bearer ${ACCESS_TOKEN},
"content-type": "application/json",
"x-skypetoken": SKYPETOKEN,
},
body: JSON.stringify(payload),
method: "PUT",
});
return res;
}
const res = await inviteToTeams("abc", true); チャネルに招待する方法
POST /teams/{teams-id}/channels/{channels-id}/members
code:payload
{
"@odata.type": "#microsoft.graph.aadUserConversationMember",
}
全学生のメールアドレスを取得する方法
API経由なら得られる
code:js
const url = https://graph.microsoft.com/v1.0/users?$filter=endswith(mail,'@kure.kosen-ac.jp')&$orderby=userPrincipalName;
const res = await fetch(url, {
headers: {
Authorization: Bearer ${ACCESS_TOKEN},
ConsistencyLevel: eventual
}
});